
update (done, now) {
  if (!this.leaveTime) {
    this.leaveTime = now;
  }
  const {duration} = this.props;
  const passedTime = now - this.enterTime;
  if (passedTime > duration) {
    if (this.cafId) {
      caf(this.cafId);
      this.leaveTime = null;
    }
    done();
    return;
  }
  const progress = ease(passedTime / duration);
  this.ssetState({
    progress
  });
  this.cafId = raf(this.enter.bind(this, done));
}
